]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
runDialog: animate to new height on error
authorRay Strode <rstrode@redhat.com>
Mon, 6 Dec 2010 19:41:45 +0000 (14:41 -0500)
committerRay Strode <rstrode@redhat.com>
Fri, 14 Jan 2011 05:11:17 +0000 (00:11 -0500)
When an error message is displayed the run dialog
pops to the new height instantly.  It needs a
a transition.

This commit makes the dialog quickly grow to its
ultimate height, making room for the error message,
before showing it.

https://bugzilla.gnome.org/show_bug.cgi?id=637187

js/ui/runDialog.js

index f29866d4d55c766d8c1d0b9adb16509201ebbe98..88c057961e022d5a5b2a67c3cbbc7906ec799580 100644 (file)
@@ -21,6 +21,8 @@ const MAX_FILE_DELETED_BEFORE_INVALID = 10;
 const HISTORY_KEY = 'command-history';
 const HISTORY_LIMIT = 512;
 
+const DIALOG_GROW_TIME = 0.1;
+
 function CommandCompleter() {
     this._init();
 }
@@ -362,7 +364,21 @@ __proto__: ModalDialog.ModalDialog.prototype,
                     let errorStr = _("Execution of '%s' failed:").format(command) + '\n' + e.message;
                     this._errorMessage.set_text(errorStr);
 
-                    this._errorBox.show();
+                    if (!this._errorBox.visible) {
+                        let [errorBoxMinHeight, errorBoxNaturalHeight] = this._errorBox.get_preferred_height(-1);
+
+                        let parentActor = this._errorBox.get_parent();
+                        Tweener.addTween(parentActor,
+                                         { height: parentActor.height + errorBoxNaturalHeight,
+                                           time: DIALOG_GROW_TIME,
+                                           transition: 'easeOutQuad',
+                                           onComplete: Lang.bind(this,
+                                               function() {
+                                                    parentActor.set_height(-1);
+                                                    this._errorBox.show();
+                                               })
+                                         });
+                    }
                 }
             }
         }